package com.sun.jdk.date.jdk8after;

import java.time.LocalDate;
import java.time.Month;
import java.time.temporal.ChronoUnit;

public class TemporalQueryPractiseWithLambda {

    private static void test1() {
        LocalDate nowTime = LocalDate.now();

        Long day = nowTime.query(temporal -> {
            LocalDate now = LocalDate.from(temporal);
            // 封装当年的劳动节时间
            LocalDate laborDay = LocalDate.of(now.getYear(), Month.MAY, 1);
            // 判断当前时间是否已经超过了当年的劳动节，如果超过了当年的劳动节，则laborDay+1年
            if (now.isAfter(laborDay)) {
                laborDay = laborDay.plusYears(1);
            }
            // 计算从当前时间到下一个五一劳动节的天数
            long days = ChronoUnit.DAYS.between(now, laborDay);
            return days;
        });
        // 现在的时间
        System.out.println("现在的时间：" + nowTime);
        // 距离下一个五一劳动节的时间
        System.out.println("距离下一个五一劳动节还有：" + day + "天");

    }

    public static void main(String[] args) {
        test1();
    }
}
